package shoppingmall.reception.mapper;

import org.apache.ibatis.annotations.Mapper;

import shoppingmall.reception.pojo.ProductOrder;

import java.util.List;

/**
 * 平台商品订单相关服务mapper层
 */
@Mapper
public interface ProductOrderMapper {

    /**
     * 添加一条商品订单数据
     */
    public int saveProductOrder (ProductOrder productOrder);

    /**
     * 批量创建商品订单数据(用户购物车勾选多条商品进行结算，本表结构只能支持一个商品为一条订单数据)
     */
    public int saveProductOrderBatch(List<ProductOrder> productOrders);

    /**
     * 查询平台会员用户的所有订单 user_id = ?
     */
    public List<ProductOrder> getUserAllProductOrderList (int userId);

    /**
     * 查询某条订单数据(根据订单id = ? 或者订单号order_id = ?)
     */
    public ProductOrder getProductOrderByOrderId (String orderId);

    /**
     * 查询某用户的多条订单数据(根据订单ids String[] orderIds)
     */
    public List<ProductOrder> getProductOrderByOrderIds (String[] orderIdList);

    /**
     * 查询平台会员的相关状态订单user_id = ?, order_state = ? 状态(未支付，已支付，待发货，已发货，运输中，已收货，已评价，已取消，已退货)
     */
    public List<ProductOrder> getProductOrderListByUserIdAndOrderState (int userId, String orderState);

    /**
     * 修改订单的相关信息(主要是 订单联系人、订单联系人号码、订单联系人地址、订单备注)
     */
    public int updateProductOrder (ProductOrder productOrder);

    /**
     * 删除平台会员订单(支持单条删除 和 多条批量删除) 根据订单id主键? 订单号?
     */
    public int deleteProductOrderBatch (List<String> orderIds);
}
